package com.fy.fyspace.model.vo.monitor;

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 监控仪表板数据传输对象
 */
@Data
public class MonitorDashboardVO {

    /**
     * 系统概览
     */
    private SystemOverview systemOverview;

    /**
     * 性能指标
     */
    private PerformanceMetrics performanceMetrics;

    /**
     * 实时统计
     */
    private RealtimeStats realtimeStats;

    /**
     * 系统告警
     */
    private List<SystemAlert> alerts;

    /**
     * 时间戳
     */
    private Long timestamp;

    @Data
    public static class SystemOverview {
        private Long totalUsers;
        private Long activeUsers;
        private Long bannedUsers;
        private Long totalPictures;
        private Long approvedPictures;
        private Long reviewingPictures;
        private Long totalFiles;
    }

    @Data
    public static class PerformanceMetrics {
        private Map<String, Object> heapMemoryUsage;
        private Integer threadCount;
        private Integer peakThreadCount;
        private Double systemLoadAverage;
        private Integer availableProcessors;
    }

    @Data
    public static class RealtimeStats {
        private Long apiCallCount;
        private Long errorCount;
        private Long uptime;
    }

    @Data
    public static class SystemAlert {
        private String type;
        private String level;
        private String message;
        private Long timestamp;
    }
} 